#ifndef GLOBAL_HEADER_H_INCLUDED
#define GLOBAL_HEADER_H_INCLUDED

#define BLOCK_SIZE 1024

#include<stdio.h>
#include "error_codes.h"
#include "n_ary.h"
#include "bst.h"
#include "hashtable.h"

long int total_size;
long int total_fdcount;
char vfs_name[256];
char *free_list;
FILE *vfs_ptr;
int is_vfsmounted;

struct fd {
	char file_name[256];
	nary_pointer child;
	nary_pointer sibling;
	nary_pointer parent;
	char type;
    long int block_num;
};

typedef struct fd* file_desc_ptr;

struct fd *fd_array;

nary_pointer root_dir;

// Pointer always pointing to root node of binary search tree.
bst_node_ptr bst_root;
hash_ptr *htable;


#endif // GLOBAL_HEADER_H_INCLUDED
